<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
	<meta name="theme-color" content="#33474d">
	<title>Linux系统服务 | 失落的乐章</title>
	<link rel="stylesheet" href="/css/style.css" />
	
      <link rel="alternate" href="/atom.xml" title="失落的乐章" type="application/atom+xml">
    
</head>

<body>

	<header class="header">
		<nav class="header__nav">
			
				<a href="/archives" class="header__link">Archive</a>
			
				<a href="/tags" class="header__link">Tags</a>
			
				<a href="/atom.xml" class="header__link">RSS</a>
			
		</nav>
		<h1 class="header__title"><a href="/">失落的乐章</a></h1>
		<h2 class="header__subtitle">技术面前，永远都是学生。</h2>
	</header>

	<main>
		<article>
	
		<h1>Linux系统服务</h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/Linux/">Linux</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;如果你对windows非常熟悉的话，相信你肯定配置过开机启动的服务，有些服务我们日常用不到则要把它停掉，一来可以节省资源，二来可以减少安全隐患。在linux上同样也有相关的工具来管理系统的服务。</p>
<h2 id="1-ntsysv服务配置工具"><a href="#1-ntsysv服务配置工具" class="headerlink" title="1. ntsysv服务配置工具"></a>1. ntsysv服务配置工具</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;用来配置哪些服务开启或者关闭，有点类似图形界面，不过是使用键盘来控制的。如果没有这个命令请使用 <code>yum  install  -y  ntsysv</code> 安装它。安装好后，直接运行命令 <code>ntsysv</code> 回车后弹出一个配置界面：</p>
<p><figure class="figure"><img src="https://github.com/hcldirgit/image/blob/master/%E7%B3%BB%E7%BB%9F%E6%9C%8D%E5%8A%A1/01.png?raw=true" alt=""></figure></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;按键盘的上下方向键可以调节红色光标，按空格可以选择开启或者不开启，如果前面的中括号内显示有 <code>*</code> 则表示开启否则不开启。通过这个工具也可以看到目前系统中所有的服务。 <strong>建议除 “crond, iptables, network, sshd, syslog, irqbalance, sendmail, microcode_ctl” 外其他服务全部停掉。选择好后，按 “tab” 键选择 “确定”, 然后回车，需要重启机器才能生效</strong> 。</p>
<h2 id="2-chkconfig服务管理工具"><a href="#2-chkconfig服务管理工具" class="headerlink" title="2. chkconfig服务管理工具"></a>2. chkconfig服务管理工具</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Linux系统所有的预设服务可以查看/etc/init.d/目录得到:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># ls /etc/init.d</span></div><div class="line">auditd     keepalived   netfs    portreserve  rpcidmapd   squid</div><div class="line">crond      killall      network  postfix      rpcsvcgssd  sshd</div><div class="line"><span class="built_in">functions</span>  messagebus   nfs      rdisc        rsyslog     sysstat</div><div class="line">halt       mysqld       nfslock  resin        sandbox     tomcat</div><div class="line">ip6tables  mysqldslave  nmb      restorecond  saslauthd   udev-post</div><div class="line">iptables   named        ntpd     rpcbind      single      vsftpd</div><div class="line">ipvsadm    netconsole   ntpdate  rpcgssd      smb         winbind</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;其实这就是系统所有的预设服务了。为什么这样讲，因为系统预设服务都是可以通过这样的命令实现 <code>service  服务名  start|stop|restart</code> 这里的服务名就是/etc/init.d/目录下的这些文件了。除了可以使用 <code>service  crond start</code> 启动crond外，还可以使用 <code>/etc/init.d/crond start</code> 来启动。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;言归正传，我们可以使用 chkconfig –list 列出所有的服务以及每个级别是否开启:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div><div class="line">30</div><div class="line">31</div><div class="line">32</div><div class="line">33</div><div class="line">34</div><div class="line">35</div><div class="line">36</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># chkconfig --list</span></div><div class="line">abrt-ccpp 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:启用 6:关闭</div><div class="line">abrtd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:启用 6:关闭</div><div class="line">acpid 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">atd 0:关闭 1:关闭 2:关闭 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">auditd 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">blk-availability 0:关闭 1:启用 2:启用 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">cpuspeed 0:关闭 1:启用 2:启用 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭</div><div class="line">haldaemon 0:关闭 1:关闭 2:关闭 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">htcacheclean 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">httpd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">ip6tables 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">iptables 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭</div><div class="line">irqbalance 0:关闭 1:关闭 2:关闭 3:启用 4:启用 5:启用 6:关闭</div><div class="line">kdump 0:关闭 1:关闭 2:关闭 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">lvm2-monitor 0:关闭 1:启用 2:启用 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">mdmonitor 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">messagebus 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">netconsole 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">netfs 0:关闭 1:关闭 2:关闭 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">network 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭</div><div class="line">ntpd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">ntpdate 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">postfix 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">psacct 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">quota_nld 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">rdisc 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">restorecond 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">rngd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">rsyslog 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:启用 6:关闭</div><div class="line">saslauthd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">smartd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭</div><div class="line">sshd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭</div><div class="line">sysstat 0:关闭 1:启用 2:启用 3:启用 4:启用 5:启用 6:关闭</div><div class="line">udev-post 0:关闭 1:启用 2:启用 3:关闭 4:启用 5:启用 6:关闭</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;这里的级别（0,1,2,3,4,5,6）就是 /etc/inittab 里面的那几个启动级别了，0、1、6运行级别被系统保留：其中0作为shutdown动作，1作为重启至单用户模式，6为重启；在一般的Linux系统实现中，都使用了2、3、4、5几个级别，在CentOS系统中，2表示无NFS支持的多用户模式，3表示完全多用户模式（也是最常用的级别），4保留给用户自定义，5表示图形登录方式。我们可以使用grep命令把我们想要看的服务过滤出来:</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># chkconfig --list |grep cron</span></div><div class="line">crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;现在我们只是看到了各服务在每个级别下是否开启，那么如何去更改哪个级别下是否开启呢？</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># chkconfig --level 3 crond off</span></div><div class="line">[root@localhost ~]<span class="comment"># chkconfig --list |grep cron</span></div><div class="line">crond 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:启用 6:关闭</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;用 –level 指定级别，后面是服务名，然后是 off 或者 on ，–level 后还可以跟多个级别：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># chkconfig --level 345 crond off</span></div><div class="line">[root@localhost ~]<span class="comment"># chkconfig --list |grep cron</span></div><div class="line">crond 0:关闭 1:关闭 2:启用 3:关闭 4:关闭 5:关闭 6:关闭</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;另外还可以省略级别，默认是针对2，3，4，5级别操作：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># chkconfig crond on</span></div><div class="line">[root@localhost ~]<span class="comment"># chkconfig --list |grep cron</span></div><div class="line">crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;chkconfig 还有一个功能就是可以把某个服务加入到系统服务，即可以使用 <code>service 服务名 start</code> 这样的形式，并且可以在 <code>chkconfig --list</code> 中查找到。当然也能删除掉。</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># chkconfig --del crond</span></div><div class="line">[root@localhost ~]<span class="comment"># chkconfig --list |grep cron</span></div><div class="line">[root@localhost ~]<span class="comment"># chkconfig --add crond</span></div><div class="line">[root@localhost ~]<span class="comment"># chkconfig --list |grep cron</span></div><div class="line">crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;这个功能常用在把自定义的启动脚本加入到系统服务当中。</p>

	

	
		<span class="different-posts"><a href="/2017/10/12/1. Linux 基础/62. Linux系统服务/" onclick="window.history.go(-1); return false;">⬅️ Go back </a></span>

	

</article>

	</main>

	<footer class="footer">
	<div class="footer-content">
		
	      <div class="footer__element">
	<p>Hi there, <br />welcome to my Blog glad you found it. Have a look around, will you?</p>
</div>

	    
	      <div class="footer__element">
	<h5>Check out</h5>
	<ul class="footer-links">
		<li class="footer-links__link"><a href="/archives">Archive</a></li>
		
		  <li class="footer-links__link"><a href="/atom.xml">RSS</a></li>
	    
		<li class="footer-links__link"><a href="/about">about page</a></li>
		<li class="footer-links__link"><a href="/tags">Tags</a></li>
		<li class="footer-links__link"><a href="/categories">Categories</a></li>
	</ul>
</div>

	    

		<div class="footer-credit">
			<span>© 2017 失落的乐章 | Powered by <a href="https://hexo.io/">Hexo</a> | Theme <a href="https://github.com/HoverBaum/meilidu-hexo">MeiliDu</a></span>
		</div>

	</div>


</footer>



</body>

</html>
